<?php

declare(strict_types=1);

namespace ImiApp\ApiServer\Api\Model\Base;

use Imi\Config\Annotation\ConfigValue;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Entity;
use Imi\Model\Annotation\Table;
use ImiApp\ImiServer\AbstractModel as Model;

/**
 * 测试表 基类.
 *
 * @Entity(camel=false, bean=true, incrUpdate=false)
 * @Table(name=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\Test.name", default="fa_test"), usePrefix=false, id={"id"}, dbPoolName=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\Test.poolName"))
 * @DDL(sql="CREATE TABLE `fa_test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `user_id` int(10) DEFAULT '0' COMMENT '会员ID',
  `admin_id` int(10) DEFAULT '0' COMMENT '管理员ID',
  `category_id` int(10) unsigned DEFAULT '0' COMMENT '分类ID(单选)',
  `category_ids` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '分类ID(多选)',
  `tags` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标签',
  `week` enum('monday','tuesday','wednesday') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三',
  `flag` set('hot','index','recommend') COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标志(多选):hot=热门,index=首页,recommend=推荐',
  `genderdata` enum('male','female') COLLATE utf8mb4_unicode_ci DEFAULT 'male' COMMENT '性别(单选):male=男,female=女',
  `hobbydata` set('music','reading','swimming') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '爱好(多选):music=音乐,reading=读书,swimming=游泳',
  `title` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标题',
  `content` text COLLATE utf8mb4_unicode_ci COMMENT '内容',
  `image` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '图片',
  `images` varchar(1500) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '图片组',
  `attachfile` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '附件',
  `keywords` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '关键字',
  `description` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '描述',
  `city` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '省市',
  `json` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '配置:key=名称,value=值',
  `multiplejson` varchar(1500) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '二维数组:title=标题,intro=介绍,author=作者,age=年龄',
  `price` decimal(10,2) unsigned DEFAULT '0.00' COMMENT '价格',
  `views` int(10) unsigned DEFAULT '0' COMMENT '点击',
  `workrange` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '时间区间',
  `startdate` date DEFAULT NULL COMMENT '开始日期',
  `activitytime` datetime DEFAULT NULL COMMENT '活动时间(datetime)',
  `year` year(4) DEFAULT NULL COMMENT '年',
  `times` time DEFAULT NULL COMMENT '时间',
  `refreshtime` bigint(16) DEFAULT NULL COMMENT '刷新时间',
  `createtime` bigint(16) DEFAULT NULL COMMENT '创建时间',
  `updatetime` bigint(16) DEFAULT NULL COMMENT '更新时间',
  `deletetime` bigint(16) DEFAULT NULL COMMENT '删除时间',
  `weigh` int(10) DEFAULT '0' COMMENT '权重',
  `switch` tinyint(1) DEFAULT '0' COMMENT '开关',
  `status` enum('normal','hidden') COLLATE utf8mb4_unicode_ci DEFAULT 'normal' COMMENT '状态',
  `state` enum('0','1','2') COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '状态值:0=禁用,1=正常,2=推荐',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='测试表'", decode="")
 *
 * @property int|null $id ID
 * @property int|null $userId 会员ID
 * @property int|null $adminId 管理员ID
 * @property int|null $categoryId 分类ID(单选)
 * @property string|null $categoryIds 分类ID(多选)
 * @property string|null $tags 标签
 * @property string|null $week 星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三
 * @property array|null $flag 标志(多选):hot=热门,index=首页,recommend=推荐
 * @property string|null $genderdata 性别(单选):male=男,female=女
 * @property array|null $hobbydata 爱好(多选):music=音乐,reading=读书,swimming=游泳
 * @property string|null $title 标题
 * @property string|null $content 内容
 * @property string|null $image 图片
 * @property string|null $images 图片组
 * @property string|null $attachfile 附件
 * @property string|null $keywords 关键字
 * @property string|null $description 描述
 * @property string|null $city 省市
 * @property string|null $json 配置:key=名称,value=值
 * @property string|null $multiplejson 二维数组:title=标题,intro=介绍,author=作者,age=年龄
 * @property string|float|int|null $price 价格
 * @property int|null $views 点击
 * @property string|null $workrange 时间区间
 * @property string|null $startdate 开始日期
 * @property string|null $activitytime 活动时间(datetime)
 * @property int|null $year 年
 * @property string|null $times 时间
 * @property int|null $refreshtime 刷新时间
 * @property int|null $createtime 创建时间
 * @property int|null $updatetime 更新时间
 * @property int|null $deletetime 删除时间
 * @property int|null $weigh 权重
 * @property int|null $switch 开关
 * @property string|null $status 状态
 * @property string|null $state 状态值:0=禁用,1=正常,2=推荐
 */
abstract class TestBase extends Model
{
    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEY = 'id';

    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEYS = ["id"];

    /**
     * ID.
     * id
     * @Column(name="id", type="int", length=10, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $id = NULL;

    /**
     * 获取 id - ID.
     *
     * @return int|null
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * 赋值 id - ID.
     * @param int|null $id id
     * @return static
     */
    public function setId($id)
    {
        $this->id = null === $id ? null : (int)$id;
        return $this;
    }

    /**
     * 会员ID.
     * user_id
     * @Column(name="user_id", type="int", length=10, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $userId = 0;

    /**
     * 获取 userId - 会员ID.
     *
     * @return int|null
     */
    public function getUserId(): ?int
    {
        return $this->userId;
    }

    /**
     * 赋值 userId - 会员ID.
     * @param int|null $userId user_id
     * @return static
     */
    public function setUserId($userId)
    {
        $this->userId = null === $userId ? null : (int)$userId;
        return $this;
    }

    /**
     * 管理员ID.
     * admin_id
     * @Column(name="admin_id", type="int", length=10, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $adminId = 0;

    /**
     * 获取 adminId - 管理员ID.
     *
     * @return int|null
     */
    public function getAdminId(): ?int
    {
        return $this->adminId;
    }

    /**
     * 赋值 adminId - 管理员ID.
     * @param int|null $adminId admin_id
     * @return static
     */
    public function setAdminId($adminId)
    {
        $this->adminId = null === $adminId ? null : (int)$adminId;
        return $this;
    }

    /**
     * 分类ID(单选).
     * category_id
     * @Column(name="category_id", type="int", length=10, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $categoryId = 0;

    /**
     * 获取 categoryId - 分类ID(单选).
     *
     * @return int|null
     */
    public function getCategoryId(): ?int
    {
        return $this->categoryId;
    }

    /**
     * 赋值 categoryId - 分类ID(单选).
     * @param int|null $categoryId category_id
     * @return static
     */
    public function setCategoryId($categoryId)
    {
        $this->categoryId = null === $categoryId ? null : (int)$categoryId;
        return $this;
    }

    /**
     * 分类ID(多选).
     * category_ids
     * @Column(name="category_ids", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $categoryIds = NULL;

    /**
     * 获取 categoryIds - 分类ID(多选).
     *
     * @return string|null
     */
    public function getCategoryIds(): ?string
    {
        return $this->categoryIds;
    }

    /**
     * 赋值 categoryIds - 分类ID(多选).
     * @param string|null $categoryIds category_ids
     * @return static
     */
    public function setCategoryIds($categoryIds)
    {
        $this->categoryIds = null === $categoryIds ? null : (string)$categoryIds;
        return $this;
    }

    /**
     * 标签.
     * tags
     * @Column(name="tags", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $tags = '';

    /**
     * 获取 tags - 标签.
     *
     * @return string|null
     */
    public function getTags(): ?string
    {
        return $this->tags;
    }

    /**
     * 赋值 tags - 标签.
     * @param string|null $tags tags
     * @return static
     */
    public function setTags($tags)
    {
        $this->tags = null === $tags ? null : (string)$tags;
        return $this;
    }

    /**
     * 星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三.
     * week
     * @Column(name="week", type="enum", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $week = NULL;

    /**
     * 获取 week - 星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三.
     *
     * @return string|null
     */
    public function getWeek(): ?string
    {
        return $this->week;
    }

    /**
     * 赋值 week - 星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三.
     * @param string|null $week week
     * @return static
     */
    public function setWeek($week)
    {
        $this->week = null === $week ? null : (string)$week;
        return $this;
    }

    /**
     * 标志(多选):hot=热门,index=首页,recommend=推荐.
     * flag
     * @Column(name="flag", type="set", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var array|null
     */
    protected ?array $flag = NULL;

    /**
     * 获取 flag - 标志(多选):hot=热门,index=首页,recommend=推荐.
     *
     * @return array|null
     */
    public function getFlag(): ?array
    {
        return $this->flag;
    }

    /**
     * 赋值 flag - 标志(多选):hot=热门,index=首页,recommend=推荐.
     * @param array|null $flag flag
     * @return static
     */
    public function setFlag($flag)
    {
        $this->flag = null === $flag ? null : $flag;
        return $this;
    }

    /**
     * 性别(单选):male=男,female=女.
     * genderdata
     * @Column(name="genderdata", type="enum", length=0, accuracy=0, nullable=true, default="male", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $genderdata = 'male';

    /**
     * 获取 genderdata - 性别(单选):male=男,female=女.
     *
     * @return string|null
     */
    public function getGenderdata(): ?string
    {
        return $this->genderdata;
    }

    /**
     * 赋值 genderdata - 性别(单选):male=男,female=女.
     * @param string|null $genderdata genderdata
     * @return static
     */
    public function setGenderdata($genderdata)
    {
        $this->genderdata = null === $genderdata ? null : (string)$genderdata;
        return $this;
    }

    /**
     * 爱好(多选):music=音乐,reading=读书,swimming=游泳.
     * hobbydata
     * @Column(name="hobbydata", type="set", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var array|null
     */
    protected ?array $hobbydata = NULL;

    /**
     * 获取 hobbydata - 爱好(多选):music=音乐,reading=读书,swimming=游泳.
     *
     * @return array|null
     */
    public function getHobbydata(): ?array
    {
        return $this->hobbydata;
    }

    /**
     * 赋值 hobbydata - 爱好(多选):music=音乐,reading=读书,swimming=游泳.
     * @param array|null $hobbydata hobbydata
     * @return static
     */
    public function setHobbydata($hobbydata)
    {
        $this->hobbydata = null === $hobbydata ? null : $hobbydata;
        return $this;
    }

    /**
     * 标题.
     * title
     * @Column(name="title", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $title = '';

    /**
     * 获取 title - 标题.
     *
     * @return string|null
     */
    public function getTitle(): ?string
    {
        return $this->title;
    }

    /**
     * 赋值 title - 标题.
     * @param string|null $title title
     * @return static
     */
    public function setTitle($title)
    {
        $this->title = null === $title ? null : (string)$title;
        return $this;
    }

    /**
     * 内容.
     * content
     * @Column(name="content", type="text", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $content = NULL;

    /**
     * 获取 content - 内容.
     *
     * @return string|null
     */
    public function getContent(): ?string
    {
        return $this->content;
    }

    /**
     * 赋值 content - 内容.
     * @param string|null $content content
     * @return static
     */
    public function setContent($content)
    {
        $this->content = null === $content ? null : (string)$content;
        return $this;
    }

    /**
     * 图片.
     * image
     * @Column(name="image", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $image = '';

    /**
     * 获取 image - 图片.
     *
     * @return string|null
     */
    public function getImage(): ?string
    {
        return $this->image;
    }

    /**
     * 赋值 image - 图片.
     * @param string|null $image image
     * @return static
     */
    public function setImage($image)
    {
        $this->image = null === $image ? null : (string)$image;
        return $this;
    }

    /**
     * 图片组.
     * images
     * @Column(name="images", type="varchar", length=1500, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $images = '';

    /**
     * 获取 images - 图片组.
     *
     * @return string|null
     */
    public function getImages(): ?string
    {
        return $this->images;
    }

    /**
     * 赋值 images - 图片组.
     * @param string|null $images images
     * @return static
     */
    public function setImages($images)
    {
        $this->images = null === $images ? null : (string)$images;
        return $this;
    }

    /**
     * 附件.
     * attachfile
     * @Column(name="attachfile", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $attachfile = '';

    /**
     * 获取 attachfile - 附件.
     *
     * @return string|null
     */
    public function getAttachfile(): ?string
    {
        return $this->attachfile;
    }

    /**
     * 赋值 attachfile - 附件.
     * @param string|null $attachfile attachfile
     * @return static
     */
    public function setAttachfile($attachfile)
    {
        $this->attachfile = null === $attachfile ? null : (string)$attachfile;
        return $this;
    }

    /**
     * 关键字.
     * keywords
     * @Column(name="keywords", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $keywords = '';

    /**
     * 获取 keywords - 关键字.
     *
     * @return string|null
     */
    public function getKeywords(): ?string
    {
        return $this->keywords;
    }

    /**
     * 赋值 keywords - 关键字.
     * @param string|null $keywords keywords
     * @return static
     */
    public function setKeywords($keywords)
    {
        $this->keywords = null === $keywords ? null : (string)$keywords;
        return $this;
    }

    /**
     * 描述.
     * description
     * @Column(name="description", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $description = '';

    /**
     * 获取 description - 描述.
     *
     * @return string|null
     */
    public function getDescription(): ?string
    {
        return $this->description;
    }

    /**
     * 赋值 description - 描述.
     * @param string|null $description description
     * @return static
     */
    public function setDescription($description)
    {
        $this->description = null === $description ? null : (string)$description;
        return $this;
    }

    /**
     * 省市.
     * city
     * @Column(name="city", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $city = '';

    /**
     * 获取 city - 省市.
     *
     * @return string|null
     */
    public function getCity(): ?string
    {
        return $this->city;
    }

    /**
     * 赋值 city - 省市.
     * @param string|null $city city
     * @return static
     */
    public function setCity($city)
    {
        $this->city = null === $city ? null : (string)$city;
        return $this;
    }

    /**
     * 配置:key=名称,value=值.
     * json
     * @Column(name="json", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $json = NULL;

    /**
     * 获取 json - 配置:key=名称,value=值.
     *
     * @return string|null
     */
    public function getJson(): ?string
    {
        return $this->json;
    }

    /**
     * 赋值 json - 配置:key=名称,value=值.
     * @param string|null $json json
     * @return static
     */
    public function setJson($json)
    {
        $this->json = null === $json ? null : (string)$json;
        return $this;
    }

    /**
     * 二维数组:title=标题,intro=介绍,author=作者,age=年龄.
     * multiplejson
     * @Column(name="multiplejson", type="varchar", length=1500, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $multiplejson = '';

    /**
     * 获取 multiplejson - 二维数组:title=标题,intro=介绍,author=作者,age=年龄.
     *
     * @return string|null
     */
    public function getMultiplejson(): ?string
    {
        return $this->multiplejson;
    }

    /**
     * 赋值 multiplejson - 二维数组:title=标题,intro=介绍,author=作者,age=年龄.
     * @param string|null $multiplejson multiplejson
     * @return static
     */
    public function setMultiplejson($multiplejson)
    {
        $this->multiplejson = null === $multiplejson ? null : (string)$multiplejson;
        return $this;
    }

    /**
     * 价格.
     * price
     * @Column(name="price", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var string|float|int|null
     */
    protected $price = NULL;

    /**
     * 获取 price - 价格.
     *
     * @return string|float|int|null
     */
    public function getPrice()
    {
        return $this->price;
    }

    /**
     * 赋值 price - 价格.
     * @param string|float|int|null $price price
     * @return static
     */
    public function setPrice($price)
    {
        $this->price = null === $price ? null : $price;
        return $this;
    }

    /**
     * 点击.
     * views
     * @Column(name="views", type="int", length=10, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $views = 0;

    /**
     * 获取 views - 点击.
     *
     * @return int|null
     */
    public function getViews(): ?int
    {
        return $this->views;
    }

    /**
     * 赋值 views - 点击.
     * @param int|null $views views
     * @return static
     */
    public function setViews($views)
    {
        $this->views = null === $views ? null : (int)$views;
        return $this;
    }

    /**
     * 时间区间.
     * workrange
     * @Column(name="workrange", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $workrange = '';

    /**
     * 获取 workrange - 时间区间.
     *
     * @return string|null
     */
    public function getWorkrange(): ?string
    {
        return $this->workrange;
    }

    /**
     * 赋值 workrange - 时间区间.
     * @param string|null $workrange workrange
     * @return static
     */
    public function setWorkrange($workrange)
    {
        $this->workrange = null === $workrange ? null : (string)$workrange;
        return $this;
    }

    /**
     * 开始日期.
     * startdate
     * @Column(name="startdate", type="date", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $startdate = NULL;

    /**
     * 获取 startdate - 开始日期.
     *
     * @return string|null
     */
    public function getStartdate(): ?string
    {
        return $this->startdate;
    }

    /**
     * 赋值 startdate - 开始日期.
     * @param string|null $startdate startdate
     * @return static
     */
    public function setStartdate($startdate)
    {
        $this->startdate = null === $startdate ? null : (string)$startdate;
        return $this;
    }

    /**
     * 活动时间(datetime).
     * activitytime
     * @Column(name="activitytime", type="datetime", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $activitytime = NULL;

    /**
     * 获取 activitytime - 活动时间(datetime).
     *
     * @return string|null
     */
    public function getActivitytime(): ?string
    {
        return $this->activitytime;
    }

    /**
     * 赋值 activitytime - 活动时间(datetime).
     * @param string|null $activitytime activitytime
     * @return static
     */
    public function setActivitytime($activitytime)
    {
        $this->activitytime = null === $activitytime ? null : (string)$activitytime;
        return $this;
    }

    /**
     * 年.
     * year
     * @Column(name="year", type="year", length=4, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $year = NULL;

    /**
     * 获取 year - 年.
     *
     * @return int|null
     */
    public function getYear(): ?int
    {
        return $this->year;
    }

    /**
     * 赋值 year - 年.
     * @param int|null $year year
     * @return static
     */
    public function setYear($year)
    {
        $this->year = null === $year ? null : (int)$year;
        return $this;
    }

    /**
     * 时间.
     * times
     * @Column(name="times", type="time", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $times = NULL;

    /**
     * 获取 times - 时间.
     *
     * @return string|null
     */
    public function getTimes(): ?string
    {
        return $this->times;
    }

    /**
     * 赋值 times - 时间.
     * @param string|null $times times
     * @return static
     */
    public function setTimes($times)
    {
        $this->times = null === $times ? null : (string)$times;
        return $this;
    }

    /**
     * 刷新时间.
     * refreshtime
     * @Column(name="refreshtime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $refreshtime = NULL;

    /**
     * 获取 refreshtime - 刷新时间.
     *
     * @return int|null
     */
    public function getRefreshtime(): ?int
    {
        return $this->refreshtime;
    }

    /**
     * 赋值 refreshtime - 刷新时间.
     * @param int|null $refreshtime refreshtime
     * @return static
     */
    public function setRefreshtime($refreshtime)
    {
        $this->refreshtime = null === $refreshtime ? null : (int)$refreshtime;
        return $this;
    }

    /**
     * 创建时间.
     * createtime
     * @Column(name="createtime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $createtime = NULL;

    /**
     * 获取 createtime - 创建时间.
     *
     * @return int|null
     */
    public function getCreatetime(): ?int
    {
        return $this->createtime;
    }

    /**
     * 赋值 createtime - 创建时间.
     * @param int|null $createtime createtime
     * @return static
     */
    public function setCreatetime($createtime)
    {
        $this->createtime = null === $createtime ? null : (int)$createtime;
        return $this;
    }

    /**
     * 更新时间.
     * updatetime
     * @Column(name="updatetime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $updatetime = NULL;

    /**
     * 获取 updatetime - 更新时间.
     *
     * @return int|null
     */
    public function getUpdatetime(): ?int
    {
        return $this->updatetime;
    }

    /**
     * 赋值 updatetime - 更新时间.
     * @param int|null $updatetime updatetime
     * @return static
     */
    public function setUpdatetime($updatetime)
    {
        $this->updatetime = null === $updatetime ? null : (int)$updatetime;
        return $this;
    }

    /**
     * 删除时间.
     * deletetime
     * @Column(name="deletetime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $deletetime = NULL;

    /**
     * 获取 deletetime - 删除时间.
     *
     * @return int|null
     */
    public function getDeletetime(): ?int
    {
        return $this->deletetime;
    }

    /**
     * 赋值 deletetime - 删除时间.
     * @param int|null $deletetime deletetime
     * @return static
     */
    public function setDeletetime($deletetime)
    {
        $this->deletetime = null === $deletetime ? null : (int)$deletetime;
        return $this;
    }

    /**
     * 权重.
     * weigh
     * @Column(name="weigh", type="int", length=10, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $weigh = 0;

    /**
     * 获取 weigh - 权重.
     *
     * @return int|null
     */
    public function getWeigh(): ?int
    {
        return $this->weigh;
    }

    /**
     * 赋值 weigh - 权重.
     * @param int|null $weigh weigh
     * @return static
     */
    public function setWeigh($weigh)
    {
        $this->weigh = null === $weigh ? null : (int)$weigh;
        return $this;
    }

    /**
     * 开关.
     * switch
     * @Column(name="switch", type="tinyint", length=1, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $switch = 0;

    /**
     * 获取 switch - 开关.
     *
     * @return int|null
     */
    public function getSwitch(): ?int
    {
        return $this->switch;
    }

    /**
     * 赋值 switch - 开关.
     * @param int|null $switch switch
     * @return static
     */
    public function setSwitch($switch)
    {
        $this->switch = null === $switch ? null : (int)$switch;
        return $this;
    }

    /**
     * 状态.
     * status
     * @Column(name="status", type="enum", length=0, accuracy=0, nullable=true, default="normal", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $status = 'normal';

    /**
     * 获取 status - 状态.
     *
     * @return string|null
     */
    public function getStatus(): ?string
    {
        return $this->status;
    }

    /**
     * 赋值 status - 状态.
     * @param string|null $status status
     * @return static
     */
    public function setStatus($status)
    {
        $this->status = null === $status ? null : (string)$status;
        return $this;
    }

    /**
     * 状态值:0=禁用,1=正常,2=推荐.
     * state
     * @Column(name="state", type="enum", length=0, accuracy=0, nullable=true, default="1", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $state = '1';

    /**
     * 获取 state - 状态值:0=禁用,1=正常,2=推荐.
     *
     * @return string|null
     */
    public function getState(): ?string
    {
        return $this->state;
    }

    /**
     * 赋值 state - 状态值:0=禁用,1=正常,2=推荐.
     * @param string|null $state state
     * @return static
     */
    public function setState($state)
    {
        $this->state = null === $state ? null : (string)$state;
        return $this;
    }

}
